export class Flags<E> {
  table: Map<E, boolean>;
  constructor() {
    this.table = new Map();
  }
  enable(value: E) {
    this.table.set(value, true);
  }
  disable(value: E) {
    this.table.set(value, false);
  }
  //未添加的值默认为false
  is_enabled(value: E) {
    return this.table.get(value) ?? false;
  }
  if_enabled(value: E, callback: () => void) {
    if (this.is_enabled(value)) callback();
  }
}
